home *** CD-ROM | disk | FTP | other *** search
/ 17 Bit Software 6: Level 6 / 17 Bit - Level 6 (1998)(Epic Marketing)[!].iso / quartz / q1172.dms / q1172.adf / DecimalRead / DecRead.Dice / decread.c < prev    next >
C/C++ Source or Header  |  1997-04-10  |  2KB  |  89 lines

  1. /* DecRead similar to HexRead but outputs in decimal */
  2.  
  3. #include <ctype.h>
  4. #include <stdio.h>
  5.  
  6. char *VERSION            = "\0$VER:DecRead 1.0 (15.10.95) T.Collier";
  7.  
  8. FILE *fp;
  9.  
  10. void brk(void);
  11. void printbuf(int c, int buffer[]);
  12.  
  13. void main(int ac, char *av[])
  14. {
  15.     char bold_on[]  = {27,"[1m"};
  16.     char bold_off[] = {27,"[22m"};
  17.     char ital_on[]  = {27,"[3m"};
  18.     char ital_off[] = {27,"[23m"};
  19.     int  buf[12];
  20.     int  count1, count2, chr, bytecount = 0;
  21.  
  22.     onbreak(brk);
  23.     if(ac == 1)
  24.     {
  25.         printf("\n%s Must%s supply a %sPATH/FILENAME%s\n\n",
  26.                     bold_on, bold_off, bold_on, bold_off);
  27.         exit(1);
  28.     }
  29.     
  30.     if(*av[1] == '?')
  31.     {
  32.         printf("\n%s%s Usage--%s%s %sDecRead PATH/FILENAME%s",
  33.                     bold_on, ital_on, bold_off, ital_off, bold_on, bold_off);
  34.         printf("\n       © T.Collier 1995.\n\n");
  35.         exit(0);
  36.     }
  37.  
  38.     fp = fopen(av[1], "r");
  39.     if(fp == NULL)
  40.     {
  41.         printf("\n Could %sNOT%s Open file: %s%s%s\n\n",
  42.                     bold_on, bold_off, bold_on, av[1], bold_off);
  43.         exit(1);
  44.     }
  45.     
  46.     for(;;)
  47.     {
  48.         printf("%08d:  ",bytecount);
  49.         for(count1 = 0; count1 < 12; count1++)
  50.         {
  51.             if((chr = getc(fp)) == EOF)
  52.             {
  53.                 for(count2 = 0; count2 < (12-count1); count2++)
  54.                     printf("    ");
  55.  
  56.                 printbuf(count1, buf);
  57.                 fclose(fp);
  58.                 exit(0);
  59.             }
  60.             buf[count1] = chr;
  61.             printf("%03d ",chr);
  62.         }
  63.         printbuf(12, buf);
  64.         bytecount += 12;
  65.     }
  66.     exit(0);
  67. }
  68.  
  69. void printbuf(int c, int buffer[])
  70. {
  71.     int loopcount;
  72.     
  73.     printf(" ");
  74.     for(loopcount = 0; loopcount < c; loopcount++)
  75.     {
  76.         if(isprint(buffer[loopcount]))
  77.             printf("%c",buffer[loopcount]);
  78.         else
  79.             printf(".");
  80.     }
  81.     printf("\n");
  82. }
  83.  
  84. void brk(void)
  85. {
  86.     fclose(fp);
  87.     exit(1);
  88. }
  89.